﻿/**
 * 工作空间的通用js
 */


/**
 * 动态隐藏显示一个html元素
 * @param {Object} obj
 */
function slideToggle(obj){
	$("#"+obj).slideToggle();
}
/**
 * 封装jqueryajax分页调用
 * 1optionp 比需是个object
 * 2所有options的属性和方法都可以被optionp覆盖,如果没有覆盖默认使用options的属性和方法
 * 以"_"开头的是自定义方法和属性，其他为Jquery的属性和方法
 * 4 程序错误:如果后台返回returnDesc不为null则_errorText无效.b页面可覆盖_errorText
 * 5 页面必须覆盖方法_callBackOK,作为页面加载成功后处理方法
 * 7 登录失效后调用方法  弹出登录页面 登录成功后 调用执行分页，页数为第一页
 * @param optionp 参数为object
 */
function ajaxListPageCall(optionp){
	if(typeof(optionp) != "object"){
		alert("参数必须为object",function(){},"error");
		return;
	}
	//默认参数
	var options={
		_loginInti:true,//重新登录后加载页面
		async:true,//异步调用
		type:"post",//请求方式
		dataType : "json",//返回的值以json方式 解释  
		data:{},//参数
		_beforeSendText:"正在加载数据，请稍等",//加载前默认提示
		_errorText:"程序异常",//error默认提示
		_initMethod:function(){//重新登录后执行方法
			if(initPageData){
			  initPageListData(1);
			}
		},
		_callBackOK:function(){//后台数据成功返回
			$("#pageDatas").html("<tr><td colspan='100' align='center' style='color:red;'>options应该覆盖此方法,public.js->_callBackOK</td></tr>");
        	$("#paging").html("");
		},
		_successCall:function (data){	//ajax成功返回
			var returnVO = data.returnVO;
		    var returnCode = returnVO.returnCode;
		    if(returnCode==ReturnConstant.IS_NOT_LOGIN){                    	
		    	this._notLogin(data);
		    }
		    if(returnCode==ReturnConstant.IS_DEAL_OK){		    	
		    	this._callBackOK(data);
		    }
            if(returnCode==ReturnConstant.IS_ERR){
		    	this._error(data);
		    }
		},
		beforeSend : function(XMLHttpRequest) {
			$("#pageDatas").html("<tr><td colspan='100' align='center' style='color:red;'>"+this._beforeSendText+"</td></tr>");
        	$("#paging").html("");
	    },
	    success : function(data,textStatus) {   	
	    	this._successCall(data);
	    },
	    error : function() {
        	$("#pageDatas").html("<tr><td colspan='100' align='center' style='color:red;'>"+this._errorText+"</td></tr>");
        	$("#paging").html("");
        },
		_error:function(data){//a参数错误后调用方法,如果有returnDesc则_errorText无效.b页面可覆盖_errorText
			var d = data.returnVO.returnDesc;
	    	d = (d==null)?this._errorText:d;
	    	$("#pageDatas").html("<tr><td colspan='100' align='center' style='color:red;'>"+d+"</td></tr>");
	    	$("#paging").html("");
		},
		_notLogin:function(data){//登录失效后调用方法  弹出登录页面 ,加载第一页
			if(login_open){
				login_open();
				if(this._loginInti){
					this._initMethod();
				}			
			}	    	
		}
	};
	//用optionp的值覆盖options
	options = jQuery.extend(false,options,optionp);
	jQuery.ajax(options);
}

/**
 * 非弹出窗口加载用
 * 封装jqueryajax
 * 1optionp 比需是个object
 * 2所有options的属性和方法都可以被optionp覆盖,如果没有覆盖默认使用options的属性和方法
 * 以"_"开头的是自定义方法和属性，其他为Jquery的属性和方法
 * 4 程序错误:如果后台返回returnDesc不为null则_errorText无效.b页面可覆盖_errorText
 * 5 页面可覆盖_callBackOK 其为ajax处理成功后调用函数，其默认不调用_initMethod ，可设置_afterInti为true调用_initMethod
 * 7 登录失效后调用方法  弹出登录页面 
 * @param optionp 参数为object
 */
function ajaxListInitCall(optionp){
	if(typeof(optionp) != "object"){
		art.dialog.alert("参数必须为object",function(){},"error");
		return;
	}
	//默认参数
	var options={
		_loginInti:true,//重新登录后加载页面
		async:true,//异步调用
		type:"post",//请求方式
		dataType : "json",//返回的值以json方式 解释  
		data:{},//参数
		_errorText:"加载失败,请重试",//error默认提示
		_errMethod:function(){
			jQuery("#"+this._id).html(this._errorText);
		},
		_initMethod:function(){},
		_callBackOK:function(){
			art.dialog.alert("页面覆盖此方法",function(){},"error");
		},//处理成功后调用方法
		_successCall:function (data){//ajax返回成功后调用方法
			var returnVO = data.returnVO;
		    var returnCode = returnVO.returnCode;
		    if(returnCode==ReturnConstant.IS_NOT_LOGIN){                    	
		    	this._notLogin(data);
		    }
		    if(returnCode==ReturnConstant.IS_DEAL_OK){	
		    	this._callBackOK(data);
		    }
            if(returnCode==ReturnConstant.IS_ERR){
            	this._error(data);
		    }
		},
		beforeSend : function(XMLHttpRequest) {
					
	    },
	    success : function(data,textStatus) { 	
	    	this._successCall(data);
	    },
	    error : function() {  
	    	this._errMethod();
        },
		_error:function(data){//a参数错误后调用方法,如果有returnDesc则_errorText无效.b页面可覆盖_errorText			
			this._errMethod();
		},
		_notLogin:function(data){//登录失效后调用方法 a 弹出登录页面 b 成功后调用_initMethod
			if(login_open){
				login_open();
				if(this._loginInti){
				  this._initMethod();
				}
			}	    	
		}
	};
	//用optionp的值覆盖options
	options = jQuery.extend(false,options,optionp);
	jQuery.ajax(options);


}


/**
 * 弹出窗口用
 * 封装jqueryajax除分页外调用
 * 1optionp 比需是个object
 * 2所有options的属性和方法都可以被optionp覆盖,如果没有覆盖默认使用options的属性和方法
 * 以"_"开头的是自定义方法和属性，其他为Jquery的属性和方法
 * 4 程序错误:如果后台返回returnDesc不为null则_errorText无效.b页面可覆盖_errorText
 * 5 页面可覆盖_callBackOK 其为ajax处理成功后调用函数，其默认不调用_initMethod ，可设置_afterInti为true调用_initMethod
 * 6 页面可覆盖_initMethod 页面可覆盖其默认行为做个性化ajax处理成功后页面加载 。
 * 7 登录失效后调用方法  弹出登录页面 登录成功后 如果_loginInti为true 则调用_initMethod
 * @param optionp 参数为object
 */
function ajaxOtherCall(optionp){
	if(typeof(optionp) != "object"){
		art.dialog.alert("参数必须为object",function(){},"error");
		return;
	}
	var options={
		_loginInti:false,//是否重新登录后加载数据
		async:true,//异步调用
		type:"post",//请求方式
		dataType : "json",//返回的值以json方式 解释  
		data:{},//参数
		_beforeSendText:"正在加载数据，请稍等",//加载前默认提示
		_errorText:"操作失败,请重试",
		_okText:"处理成功",//成功默认提示
		_initMethod:function(){},//登录后默认处理方法
		_errMethod:function(errText){
			art.dialog.alert(errText,function(){art.dialog.close()},"error");
		},//出错后默认处理方法
		_callBackOK:function(){//成功返回数据后调用方法
			art.dialog.alert(this._okText,function(){},"succeed");
		},//处理成功后调用方法
		_successCall:function (data){//ajax返回成功后调用方法
			var returnVO = data.returnVO;
		    var returnCode = returnVO.returnCode;
		    if(returnCode==ReturnConstant.IS_NOT_LOGIN){                    	
		    	this._notLogin(data);
		    }
		    if(returnCode==ReturnConstant.IS_DEAL_OK){   		    	
		    	this._callBackOK(data);
		    }
		    if(returnCode==ReturnConstant.IS_ERR){
		    	this._error(data);
		    }
		},
		beforeSend : function(XMLHttpRequest) {
	             dialog = waiting(this._beforeSendText);
	    },
	    success : function(data,textStatus) {
	    	dialog.close();	    	
	    	this._successCall(data);
	    },
	    error : function() {  
	    	dialog.close();
        	this._errMethod(this._errorText+err_after);
        },
		_error:function(data){//a参数错误后调用方法,如果有returnDesc则_errorText无效.b页面可覆盖_errorText
			var d = data.returnVO.returnDesc;
	    	d = (d==null)?this._errorText:d;
	    	this._errMethod(d+err_after);
		},
		_notLogin:function(data){//登录失效后调用方法 a 弹出登录页面 b 如果_loginInti为true 则调用_initMethod
			if(login_open){
				login_open();
				if(this._loginInti){
					this._initMethod();
				}
			}
		    
	    	
		}
	};
	//用optionp的值覆盖options
	options = jQuery.extend(false,options,optionp);
	jQuery.ajax(options);


}
/**
 * 判断是否为空
 * 是为true 否为false
 * 参数不是string 返回true
 */
function isNull(arg){
	if(arg==null)
		return true;
	if(typeof arg !="string"){
		return true;
	}
	if(arg.Trim()==""){
		return true;
	}
	return false;
}
//去除空格
String.prototype.Trim = function(){	
   return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 
String.prototype.LTrim = function(){ 
   return this.replace(/(^\s*)/g, ""); 
} 
String.prototype.RTrim = function(){ 
   return this.replace(/(\s*$)/g, ""); 
} 

function select(type,path){
	if(type==1){//人员信息list
		location.href=path+'/admin/index.jsp';
	}else if(type==2){//人员新增
		//window.open(path+'/admin/edit.jsp'
		//		,''
		//		,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=750,height=470,left=80,top=40');
		/*var win=showModalDialog(path+'/admin/edit.jsp',
				'人员新增','dialogWidth:1000px;dialogHeight:600px;dialogLeft:200px;dialogTop:150px;center:yes;help:yes;resizable:yes;status:yes;scroll:no;'); 
		
		window.location.reload();
		*/
		location.href=path+'/admin/edit.jsp';
	}else if(type==3){//admin
		location.href=path+'/admin/admin_password.jsp';
	}else if(type==4){//数据查询
		location.href=path+'/admin/query_data.jsp';
	}
}